bash
#!/bin/bash

# 设置Hive环境变量
export LANG=zh_CN.UTF-8
HIVE_HOME=/usr/bin/hive




# 创建表
hive -e "
TRUNCATE TABLE edu_dwb.attendance_dwb_leave_wide_table;
DROP TABLE IF EXISTS edu_dwb.attendance_dwb_leave_wide_table;
CREATE TABLE edu_dwb.attendance_dwb_leave_wide_table(
-- 原来的字段
    class_id        INT COMMENT '班级id',
    student_id      INT COMMENT '学员id',
    audit_state     INT COMMENT '审核状态 0 待审核 1 通过 2 不通过',
    begin_time      STRING COMMENT '请假开始时间',
    begin_time_type INT COMMENT '1：上午 2：下午',
    end_time        STRING COMMENT '请假结束时间',
    end_time_type   INT COMMENT '1：上午 2：下午',
    days            INT COMMENT '请假/已休天数',
    cancel_state    INT COMMENT '撤销状态  0 未撤销 1 已撤销',
-- 从 在读学员人数信息表 关联得到的字段
    studying_student_count INT COMMENT '在读班级人数',
-- 从 班级排课信息表 关联得到字段
    class_date          STRING COMMENT '上课日期',
    content             STRING COMMENT '课程内容'
    )

PARTITIONED BY (dt STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
;

TRUNCATE TABLE edu_dwb.attendance_dwb_signin_wide_table;
DROP TABLE IF EXISTS edu_dwb.attendance_dwb_signin_wide_table;
CREATE TABLE edu_dwb.attendance_dwb_signin_wide_table(
-- 原来的字段
    class_id          INT COMMENT '班级id',
    normal_class_flag INT COMMENT '是否正课 1 正课 2 自习',
    student_id        INT COMMENT '学员id',
    signin_time       STRING COMMENT '签到时间',
    signin_date       STRING COMMENT '签到日期',
-- 从 在读学员人数信息表 关联得到的字段
    studying_student_count INT COMMENT '在读班级人数',
-- 从 班级作息时间表 关联得到的字段
    morning_begin_time    STRING COMMENT '上午开始时间',
    morning_end_time      STRING COMMENT '上午结束时间',
    afternoon_begin_time  STRING COMMENT '下午开始时间',
    afternoon_end_time    STRING COMMENT '下午结束时间',
    evening_begin_time    STRING COMMENT '晚上开始时间',
    evening_end_time      STRING COMMENT '晚上结束时间',
-- 从 班级排课信息表 关联得到字段
    class_date          STRING COMMENT '上课日期',
    content             STRING COMMENT '课程内容')
PARTITIONED BY (dt STRING)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
STORED AS TEXTFILE
;
"

# 设置Presto环境变量 
export LANG=zh_CN.UTF-8
PRESTO_HOME=/export/server/presto/bin/presto

使用Presto连接Hive目录并查询
${PRESTO_HOME} --catalog hive --server 192.168.88.80:8090 --execute "
INSERT INTO hive.edu_dwb.attendance_dwb_signin_wide_table
SELECT
    -- 原来的字段
    s.class_id as class_id,
    normal_class_flag ,
    student_id ,
    signin_time ,
    signin_date ,
-- 从 在读学员人数信息表 关联得到的字段
    studying_student_count ,
-- 从 班级作息时间表 关联得到的字段
    morning_begin_time ,
    morning_end_time ,
    afternoon_begin_time ,
    afternoon_end_time ,
    evening_begin_time ,
    evening_end_time ,
-- 从 班级排课信息表 关联得到字段
    class_date ,
    content,
    s.dt as dt
FROM hive.edu_dwd.attendance_dwd_ft_tbh_student_signin_record s
LEFT JOIN hive.edu_dwd.attendance_dwd_dt_class_studying_student_count c
ON s.class_id=c.class_id
LEFT JOIN hive.edu_dwd.attendance_dwd_dt_tbh_class_time_table t
ON s.class_id=t.class_id
LEFT JOIN hive.edu_dwd.attendance_dwd_dt_course_table_upload_detail d
ON s.class_id=d.class_id
WHERE s.signin_date = d.class_date
;

INSERT INTO hive.edu_dwb.attendance_dwb_leave_wide_table
SELECT
    -- 原来的字段
    l.class_id as class_id,
    student_id ,
    audit_state ,
    begin_time ,
    begin_time_type ,
    end_time ,
    end_time_type ,
    days ,
    cancel_state ,
-- 从 在读学员人数信息表 关联得到的字段
    studying_student_count ,
-- 从 班级排课信息表 关联得到字段
    class_date ,
    content,
    l.dt as dt
FROM hive.edu_dwd.attendance_dwd_ft_student_leave_apply l
LEFT JOIN hive.edu_dwd.attendance_dwd_dt_class_studying_student_count c
ON l.class_id=c.class_id
LEFT JOIN hive.edu_dwd.attendance_dwd_dt_course_table_upload_detail d
ON l.class_id=d.class_id

"

